package org.jeecg.modules.wangyue.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.wangyue.entity.IndentJs;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.wangyue.model.req.ReqCommonModel;
import org.jeecg.modules.wangyue.model.req.ReqEvaluateModel;
import org.jeecg.modules.wangyue.model.req.ReqIndentJsModel;
import org.jeecg.modules.wangyue.model.res.ResIndentModel;

/**
 * @Description: 技师订单表
 * @Author: jeecg-boot
 * @Date:   2023-06-30
 * @Version: V1.0
 */
public interface IIndentJsService extends IService<IndentJs> {

    /**
     * 查询技师订单
     *
     * @param page              分页配置
     * @param keywords          关键字
     * @param placeUserId       下单用户id
     * @param placeUserType     下单用户类型
     * @param takingUserId      接单用户id
     * @param takingUserType    接单用户类型
     * @param orderStatusStr    服务状态(多个逗号隔开)
     * @param isEvaluate        是否评价(0-否,1-是)
     * @return
     */
    IPage<ResIndentModel> getIndentJsPage(Page page, String keywords, String placeUserId, String placeUserType,
                                          String takingUserId, String takingUserType, String orderStatusStr, String isEvaluate);


    /**
     * 评价订单
     *
     * @param reqEvaluateModel
     * @return
     */
    boolean evaluateIndent(ReqEvaluateModel reqEvaluateModel);


    /**
     *  技师服务开始
     *
     * @param reqIndentJsModel
     * @return
     */
    Result<?> jsServiceBegin(ReqIndentJsModel reqIndentJsModel);


    /**
     *  技师服务完成
     *
     * @param reqIndentJsModel
     * @return
     */
    Result<?> jsServiceFinish(ReqIndentJsModel reqIndentJsModel);


    /**
     * 技师取消服务(技师端)
     *
     * @param indentJs
     * @return
     */
    Result<?> jsServiceCancel(IndentJs indentJs);


    /**
     * 用户取消订单-申请退款(用户端)
     *
     * @param indentJs
     * @return
     */
    Result<?> cancelAnOrder(IndentJs indentJs);


    /**
     * 支付成功以后，待支付变成待服务
     *
     * @param reqCommonModel
     * @return
     */
    Result<?> changeToBeServed(ReqCommonModel reqCommonModel);



}
